package serialize;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class Serialize {
    public static void main (String args[]){
    SerelizacaoEDeserelizacao aula=new SerelizacaoEDeserelizacao("Danilo", "SCJC", "porcelani@gmail.com");
        try {
            FileOutputStream fos=new FileOutputStream("C://Temporario//teste.ser");//LOCALIZA UM DIRETORIO E CRIA UM ARQUIVO TIPO .ser PARA SALVAR OS TEXTOS
            ObjectOutputStream gravar = new ObjectOutputStream(fos);//OBJETO ONDE VAIS SER GRAVADO O ARQUIVO 
            gravar.writeObject(aula);
            gravar.flush();//O método flush() serve para garantir o envio do último lote de bytes enviado para gravação no arquivo
            gravar.close();//o método close() serve para fechar a stream de leitura ou gravação. Se vc não chamar o método close() 
            //sua rotina irá funcionar normalmente, entretanto você estará desperdiçando memória, uma vez que qualquer tipo de operação 
            //I/O demanda muita memória, portanto sempre após realizar gravação/ leitura 
            //de arquivos, chame o método close(), lembrando sempre de chamar o método flush() antes de close() em operações de gravação. 
            fos.flush();
            fos.close();
                    
            System.out.println("PRONTO");
        } catch (FileNotFoundException e) {
            System.out.println("ERRO FileNotFoundException");
        }catch (IOException e) {
             System.out.println("ERRO IOException");
        }catch (Exception e) {
             System.out.println("ERRO Exception");
        }
    }
}
